home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / QuickTime VR / MacOS / QuickDraw™ 3D 1.0.6F4 SDK / Development / 3DMF parser / 0.9 version / MFTEXTRD.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-24  |  4.1 KB  |  115 lines  |  [TEXT/MPS ]

  1. #ifndef MF3D_READ_H
  2. #define    MF3D_READ_H
  3. /*==============================================================================
  4.  *
  5.  *    File:        MFTEXTRD.H
  6.  *
  7.  *    Function:    Internal Text Read equates and prototypes
  8.  *
  9.  *    Author(s):    Rick Wong (RWW)
  10.  *
  11.  *    Copyright:    (c) 1995 by Apple Computer, Inc., all rights reserved.
  12.  *
  13.  *    Change History (most recent first):
  14.  *        Fabio    Changed file name to 8 characters
  15.  *        F3A_RWW    TOC stuff works.
  16.  *        F2K_RWW    Moved a bunch of equates to MFTEXTST.H
  17.  *        F2E_RWW    File created.
  18.  *==============================================================================
  19.  */
  20. #if defined(__COMPILING_ON_MACINTOSH__)
  21. #pragma once
  22. #endif
  23.  
  24. #include "MFTYPES.H"
  25.  
  26. #include "MFINTOBJ.H"
  27. #include "MFOBJTYP.H"
  28.  
  29. /* Arbitrarily large maximum length of an object name.
  30.  * In practice, we know they are much smaller.
  31.  */
  32. #define    kMF3D_MaxObjNameLength    1024
  33.  
  34. /* Amount to grow ObjTable during preprocessing (must be power of 2) */
  35. #define    kMF3D_ObjTableChunk        32
  36.  
  37. /* Temporary buffer for building strings of unknown length */
  38. typedef struct MF3D_BuildString
  39. {    MF3DCStringPtr        str;
  40.     MF3DUns32            pos;
  41. } MF3D_BuildString, *MF3D_BuildStringPtr;
  42.  
  43. /* Amount to grow BuildString buffer (must be power of 2) */
  44. #define    kMF3D_StringBufferChunk        1024
  45.  
  46. /* NumToString conversion */
  47. #define    kMF3D_MaxDigitsInUns32        10
  48.  
  49. /*==============================================================================
  50.  *    Preprocessing functions
  51.  *==============================================================================
  52.  */
  53. char        MF3D_ReadSingleChar(MF3D_FilePtr inMetafilePtr);
  54. MF3DErr        MF3D_ReadUntilCloseParen(MF3D_FilePtr inMetafilePtr);
  55. MF3DErr        MF3D_GetTOCLabels(MF3D_FilePtr inMetafilePtr,
  56.                     const MF3DUns32 inNumTocs,
  57.                     MF3DBinaryFilePositionPtr inTocLocations,
  58.                     MF3DUns32 *outNumLabels,
  59.                     MF3D_TOCReferencePtr *outTocLabelNames,
  60.                     MF3DUns32 *outRefSeed, MF3DInt32 *outTypeSeed);
  61. MF3DErr        MF3D_ConvertTableLabels(MF3D_FilePtr inMetafilePtr,
  62.                     const MF3DUns32 inNumLabels,
  63.                     MF3D_TOCReferencePtr ioTocLabelNames,
  64.                     const MF3DUns32 inNumObjects,
  65.                     MF3D_ObjectTableEntryPtr ioObjTable);
  66. MF3DErr        MF3D_PreprocessTextFile(MF3D_FilePtr inMetafilePtr);
  67. MF3DCStringPtr    MF3D_GetRefNameT(MF3D_FilePtr inMetafilePtr,
  68.                         MF3DReferenceID inRefID);
  69. MF3DErr        MF3D_PostprocessTextFile(MF3D_FilePtr inMetafilePtr);
  70.  
  71. /*==============================================================================
  72.  *    Comparison functions
  73.  *==============================================================================
  74.  */
  75. MF3DInt32    MF3D_CompareObjNames(const char *obj1, const char *obj2);
  76. MF3DInt32    MF3D_CompareLabelNames(const char *label1, const char *label2);
  77.  
  78. /*==============================================================================
  79.  *    Scan functions
  80.  *==============================================================================
  81.  */
  82. MF3DErr        MF3D_ScanTextBuffer(MF3D_FilePtr inMetafilePtr,
  83.                     const char *inFormatStr, void *outBuffer);
  84.  
  85. MF3DErr        MF3D_SkipWhitespace(MF3D_FilePtr inMetafilePtr);
  86. MF3DErr        MF3D_ReadOpenParen(MF3D_FilePtr inMetafilePtr);
  87. MF3DErr        MF3D_SkipText(MF3D_FilePtr inMetafilePtr);
  88. MF3DErr        MF3D_ReadObjectStuff(MF3D_FilePtr inMetafilePtr,
  89.                     MF3D_ObjStuffPtr *outObjectStuffPtr,
  90.                     MF3DObjType *outObjectType);
  91. MF3DErr        MF3D_ReadTextString(MF3D_FilePtr inMetafilePtr,
  92.                     MF3DCStringPtr *outStringPtr);
  93. MF3DErr        MF3D_ReadTextLabel(MF3D_FilePtr inMetafilePtr,
  94.                     MF3DCStringPtr *outStringPtr);
  95.  
  96. /*==============================================================================
  97.  *    BuildString functions
  98.  *==============================================================================
  99.  */
  100. MF3DErr        MF3D_BuildString_New(MF3D_BuildString *outStringPtr);
  101. MF3DErr        MF3D_BuildString_AddChar(MF3D_BuildString *ioStringPtr,
  102.                     char inAddChar);
  103. MF3DErr        MF3D_BuildString_EndString(MF3D_BuildString *ioStringPtr);
  104. MF3DErr        MF3D_BuildString_Delete(MF3D_BuildString *ioStringPtr);
  105.  
  106. /*==============================================================================
  107.  *    Conversion functions
  108.  *==============================================================================
  109.  */
  110. void        MF3D_NumToString(const MF3DUns32 inNumber,
  111.                     MF3DCStringPtr outString);
  112. MF3DUns8    MF3D_TextToHex(char inChar);
  113.  
  114. #endif
  115.